home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / apidev / ndr2.exe / BRETT2.C next >
C/C++ Source or Header  |  1993-09-02  |  4KB  |  133 lines

  1. /****************************************************************************
  2. The following code was taken from the Network Developer's Resource, published
  3. by RoseWare.  All contents are Copyright (c) 1993, RoseWare.  All Rights
  4. Reserved.
  5.  
  6. This material is made available as a service for subscribers of the Network
  7. Developer's Resource.  This material is not public domain.  Simply put, if you
  8. are not a subscriber of the Network Developer's Resource, you are using this
  9. material illegally.  
  10.  
  11. Those interested in subscribing should contact RoseWare via:
  12.  
  13. CompuServe:    76711,110
  14. Internet:      76711.110@compuserve.com
  15. Phone:         (703) 799-2509
  16. Fax:           (703) 799-8041
  17. BBS:           (703) 799-2536
  18. US Mail:       P.O. Box 257
  19.                Mount Vernon, VA  22121-0257
  20.  
  21. Also see the file SUBSCRIB.TXT in this ZIP file...
  22.  
  23. Contents:
  24.  
  25. Excerpts from Brett Warthen's "A Window Into NetWare, part deux" article in the
  26. September/October '93 issue of the Network Developer's Resource.  See text for
  27. explanation of the code.
  28.  
  29. ****************************************************************************/
  30.  
  31. //////////////////////////////////////////////////////////////////////////////
  32.  
  33.    HANDLE hNetWareDrv;
  34.  
  35.    NetWareRequest = NULL;
  36.  
  37.    hNetWareDrv = GetModuleHandle ("NETWARE");
  38.    if (hNetWareDrv != NULL) {
  39.       (FARPROC) NetWareRequest =
  40.         GetProcAddress (hNetWareDrv, "NetWareRequest");
  41.    }
  42. ///////////////////////////////////////////////////////////////////////////////
  43.  
  44. ////////////////////////////////////////////////////////////////////////
  45.  
  46. BYTE NetWareCall (BYTE function_no, LPSTR request_buffer,
  47.  LPSTR reply_buffer) {
  48.  
  49.    long (FAR PASCAL *NetWareRequest2) (void);
  50.    BYTE rc;
  51.  
  52.    NetWareRequest2 = NetWareRequest;
  53.    ASM  push ds
  54.    ASM  push es
  55.    ASM  mov  ah,function_no
  56.    ASM  lds  si,request_buffer
  57.    ASM  les  di,reply_buffer
  58.    NetWareRequest2 ();
  59.    ASM  pop  es
  60.    ASM  pop  ds
  61.    ASM  mov  rc,al
  62.  
  63.    return (rc);
  64.  
  65. }
  66.  
  67. ////////////////////////////////////////////////////////////////////////
  68.  
  69.  
  70. ////////////////////////////////////////////////////////////////////////
  71.  
  72. int GetLoginName (LPSTR loginName) {
  73.  
  74. /* Returns 0 for success, non-zero for failure. */
  75.  
  76.    long objectID;
  77.    BYTE loginTime[8];
  78.  
  79.    return GetConnectionInformation (GetConnectionNumber(), loginName,
  80.             OT_USER, &objectID, loginTime);
  81.  
  82.  
  83. ////////////////////////////////////////////////////////////////////////
  84.  
  85.  
  86. ////////////////////////////////////////////////////////////////////////
  87.  
  88. #include <nwcalls.h>
  89.  
  90. int GetLoginName (LPSTR loginName) {
  91.  
  92. /* Returns 0 for success, non-zero for failure. */
  93.  
  94.    NWCONN_HANDLE connectionID;
  95.    NWCONN_NUM connectionNumber;
  96.    NWOBJ_TYPE objectType;
  97.    NWOBJ_ID objectID;
  98.    BYTE loginTime[8];
  99.    NWCCODE  rc;
  100.  
  101.    rc = NWCallsInit (NULL, NULL);
  102.    if (rc) return rc;
  103.  
  104.    rc = NWGetDefaultConnectionID (&connectionID);
  105.    if (rc) return rc;
  106.    rc = NWGetConnectionNumber (connectionID, &connectionNumber);
  107.    if (rc) return rc;
  108.    rc = NWGetConnectionInformation (connectionID, connectionNumber,
  109.     loginName, &objectType, &objectID, loginTime);
  110.    return rc;
  111.  
  112. ////////////////////////////////////////////////////////////////////////
  113.  
  114. ////////////////////////////////////////////////////////////////////////
  115.  
  116. int GetLoginName (LPSTR loginName) {
  117.  
  118. /* Returns 0 for success, non-zero for failure. */
  119.  
  120.    WORD tempWord;
  121.    char tempString[100];
  122.    int rc;
  123.  
  124.    tempWord = 50;
  125.    rc = WNetGetUser (loginName, &tempWord);
  126.    if (rc) *loginName = 0;
  127.  
  128.    return !*loginName;
  129.  
  130. }
  131.  
  132. ////////////////////////////////////////////////////////////////////////
  133.